package com.fzk.core;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 文件元信息
 *
 * @author fzk
 * @datetime 2023-03-17 16:46:30
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileMeta {
    public static final byte UnUpload = 0;// 未上传
    public static final byte Uploading = 1;// 上传中
    public static final byte UploadSuccess = 2;// 上传成功
    public static final byte UploadFailed = 3;// 上传失败

    private String key;// 唯一键
    private String filename;// 文件名

    private long size;// 文件大小, 8
    // 时间戳从13位变为14位还需要200+年，所以基本上修改结束时间戳并不会造成元数据长度改变
    private long uploadStartTimeStamp;// 上传开始时间戳, 单位毫秒, 字符串长度为13
    private long uploadEndTimeStamp;// 上传结束时间戳, 单位毫秒, 字符串长度为13
    private String md5;// 文件md5摘要值, 32

    private String bucket;// 文件存储bucket,?
    private String relativePath;// 相对数据目录的存储路径,?
    /*
    是否上传完成, 用于分片上传, 0表示上传进行中，1表示上传成功，2表示上传失败
    注意不能用boolean类型，因为true和false的字符串长度不一致，修改元信息时会有问题
     */
    private byte uploadStatus;
    private byte deleted;// 删除标记，0未删除，1已删除
}
